    #ifndef IPPREWITT_INC
#define IPPREWITT_INC

#include "ipCore.h"

namespace Torch {

/** This class is designed to perform ipPrewitt edge detection

    It outputs 4 images:
    \begin{verbatim}
	seq_out->frames[0] -> horizontal gradient
	seq_out->frames[1] -> vertical gradient
	seq_out->frames[2] -> gradient magnitude
	seq_out->frames[3] -> threshold edges
    \end{verbatim}

    @author Sebastien Marcel (marcel@idiap.ch)
    @version 2.0
    \Date
    @since 2.0
*/
class ipPrewitt : public ipCore
{
   	// width of the input image
	int width;

	// height of the input image
	int height;

	// ipPrewitt kernel
	static real kx[];
	static real ky[];

public:
	/// gradient threshold
   	real threshold;

	//-----
	
	/** constructor
	    
	    @param width_ is the #width# of the input image
	    @param height_ is the #height# of the input image
	    @param coding_ is the #coding# format of the input image
	*/
    	ipPrewitt(int width_, int height_, const char *coding_);

	///
	virtual ~ipPrewitt();

	///
	virtual void process(Sequence *seq_in);
};

}

#endif
